package monopoly.Model;

import java.util.ArrayList;

/**
 * 
 * @author Jan Schrieverhoff
 *
 */
public class Karte 
{
	private int betrag;
	
	private int position; 
	
	public int getBetrag() 
	{
		return this.betrag; 
	} 
	
	public int getPosition() 
	{
		return this.position; 
	} 
	
	public Karte(int betrag, int position)
	{
		this.betrag = betrag; 
		this.position = position; 
	} 
	
	public static ArrayList createKarten(int anzahl) 
	{
		ArrayList kartenReturn = new ArrayList(); 
		
		// maximaler Betrag ( * 100)
		int maxAmount = 8;
		
		// Karten-Typ 
		// 1 = Betrag an oder abziehen 
		// 2 = zu Position ruecken 
		
		// Wir generieren immer abwechselnd betragskarten 
		// die Geld geben bzw abziehen 
		// dies hier ist der entsprechende Schalter daf�r 
		boolean negative = false; 
		
		// Karten erstellen
		for(int i = 0; i < anzahl; i++)
		{
			// Was fuer einen Kartentyp haben wir 
			int type = (int)(Math.random()*2+1);
			
			// Betrags-Karte 
			if(type == 1)
			{
				// Betrag generieren
				int temp = (int)(Math.random()*maxAmount+1);
				int amount = temp * 100;
				
				// Evt negativieren 
				if(negative)
				{
					amount = amount * -1; 
				}

				// Negativ-Schalter umlegen 
				negative = !negative;
				
				// Karte erstellen 
				Karte neueKarte = new Karte(amount, 0);
				
				kartenReturn.add(neueKarte);
			}
			// Positionskarte 
			else 
			{
				// Positionsfeld generieren
				int position = (int)(Math.random()*40+0);
				
				// Karte erstellen  
				Karte neueKarte = new Karte(0, position);
				
				kartenReturn.add(neueKarte);
			}
		}
		
		return kartenReturn; 
	}
}
